//这个文件是自定义一些打包操作的

module.exports = {
    devServer: {
        // contentBase: "./dist",
        open: true,
        // hot: true
        port: 3000
    },
    //配置自己的打包模式
    chainWebpack: config => {
        //发布模式
        config.when(process.env.NODE_ENV === 'production', config => {
            //这里就不配置了  //配置打包入口文件  
            config.entry('app').clear().add('./src/main-prod.js')

            //这个是通过配置externals 节点  解决文件体积过大问题
            //优化文件大小  将import变成 cdn引入  而element-ui 要删掉main.js对应引入  在index.html 用外部链接引入样式和js
            config.set('externals', {
                //前三个是几乎必用的  所以就直接不注释掉了
                vue: 'Vue',
                'vue-router': 'VueRouter',
                axios: 'axios',
                // lodash: '_',
                // echarts: 'echarts',
                // nprogress: 'NProgress',
                // 'vue-quil1-editor': 'vueQuillEditor'
            })

            //现在在html中可以通过访问 htmlWebpackPlugin.options.isProd  获取当前环境
            //配置发布模式下的 变量  isProd 为true  
            config.plugin('html').tap(args => {
                args[0].isProd = true;
                return args;
            })
        })

        //开发模式
        config.when(process.env.NODE_ENV === 'development', config => {
            //这里就不配置了 //配置打包入口文件
            config.entry('app').clear().add('./src/main-dev.js');
            //配置开发模式下的 变量  isProd 为true
            config.plugin('html').tap(args => {
                args[0].isProd = false;
                return args;
            })
        })
    }
}